/*
如果前面连接的业务处理超时，测试服务器对后续连接的处理情况
服务器达到性能瓶颈之后，在一次业务处理时花费太长时间，超过了服务器设置的非活跃连接超时时间
    可能导致后续连接长时间未被处理，被超时释放掉了
*/

#include "httpserver.hpp"

int main()
{
    signal(SIGCHLD, SIG_IGN);
    for(int i = 0; i < 10; i++)
    {
        pid_t pid = fork();
        if(pid < 0)
        {
            DEBUG_LOG("fork Failed !");
            return -1;
        }
        else if(pid == 0)
        {
            Socket client_sock;
            client_sock.CreateClient(8202, "127.0.0.1");

            while(1)
            {
                std::string req = "GET /hello HTTP/1.1\r\nConnection: keep-alive\r\nContent-Length: 0\r\n\r\n";
                
                assert(client_sock.Send(&req[0], req.size()) != -1);
                char buf[1024] = {0};
                assert(client_sock.Recv(buf, 1023));
                DEBUG_LOG("[%s]", buf);
            }
            
            client_sock.Close();
            exit(0);
        }
    }
    while(1) sleep(1);
    
    return 0;
}